Skip to content

fix(admin): make all taxonomy tag matches reachable - #2495

Open
khoinguyenpham04 wants to merge 6 commits into
mainfrom
fix/2477-unified-tag-picker
Open

fix(admin): make all taxonomy tag matches reachable#2495
khoinguyenpham04 wants to merge 6 commits into
mainfrom
fix/2477-unified-tag-picker

Conversation

@khoinguyenpham04

Copy link
Copy Markdown
Collaborator

What does this PR do?

Replaces the custom five-result taxonomy tag input with a Kumo multi-select combobox.

  • Shows every matching tag in a scrollable list capped at about five and a half rows.
  • Promotes exact matches so an existing tag such as Security is immediately selectable.
  • Supports pointer and keyboard selection with accessible removable chips.
  • Preserves failed creation input and API errors, immediately shows created tags, and serializes replacement saves so rapid changes land in order.

Closes #2477

Type of change

  • Bug fix
  • Feature (requires maintainer-approved Discussion)
  • Refactor (no behavior change)
  • Translation
  • Documentation
  • Performance improvement
  • Tests
  • Chore (dependencies, CI, tooling)

Checklist

  • I have read CONTRIBUTING.md
  • pnpm typecheck passes
  • pnpm lint passes
  • pnpm test passes (or targeted tests for my change)
  • pnpm format has been run
  • I have added/updated tests for my changes (if applicable)
  • User-visible strings in the admin UI are wrapped for translation (if applicable). Do not include messages.po changes except in translation PRs — a workflow extracts catalogs on merge to main.
  • I have added a changeset (if this PR changes a published package)
  • New features link to an approved Discussion: https://github.com/emdash-cms/emdash/discussions/...

Discussion: N/A — this is a bug fix.

AI-generated code disclosure

  • This PR includes AI-generated code — model/tool: OpenAI Codex (GPT-5)

Screenshots / test output

  • Taxonomy sidebar Chromium suite: 12 tests passed.
  • Full type-aware lint passed.
  • Package-wide typecheck passed.
  • Admin production build passed.
  • Manual Chromium verification confirmed exact-match ordering, keyboard and pointer selection, removable chips, RTL direction, and a live scroll container measuring 224px content within a 176px viewport.

@changeset-bot

changeset-bot Bot commented Aug 16, 2026

Copy link
Copy Markdown

🦋 Changeset detected

Latest commit: 48981c7

The changes in this PR will be included in the next version bump.

This PR includes changesets to release 17 packages
Name Type
@emdash-cms/admin Patch
emdash Patch
@emdash-cms/cloudflare Patch
@emdash-cms/sandbox-workerd Patch
@emdash-cms/plugin-mcp-smoke Patch
@emdash-cms/fixture-perf-site Patch
@emdash-cms/perf-demo-site Patch
@emdash-cms/cache-demo-site Patch
@emdash-cms/do-demo-site Patch
@emdash-cms/do-solo-demo-site Patch
@emdash-cms/auth Patch
@emdash-cms/blocks Patch
@emdash-cms/gutenberg-to-portable-text Patch
@emdash-cms/x402 Patch
create-emdash Patch
@emdash-cms/auth-atproto Patch
@emdash-cms/plugin-embeds Patch

Not sure what this means? Click here to learn what changesets are.

Click here if you're a maintainer who wants to add another changeset to this PR

@cloudflare-workers-and-pages

cloudflare-workers-and-pages Bot commented Aug 16, 2026

Copy link
Copy Markdown

Deploying with  Cloudflare Workers  Cloudflare Workers

The latest updates on your project. Learn more about integrating Git with Workers.

Status Name Latest Commit Updated (UTC)
✅ Deployment successful!
View logs
emdash-demo-do 48981c7 Aug 16 2026, 02:26 PM

@cloudflare-workers-and-pages

cloudflare-workers-and-pages Bot commented Aug 16, 2026

Copy link
Copy Markdown

Deploying with  Cloudflare Workers  Cloudflare Workers

The latest updates on your project. Learn more about integrating Git with Workers.

Status Name Latest Commit Updated (UTC)
✅ Deployment successful!
View logs
emdash-demo-cache 48981c7 Aug 16 2026, 02:24 PM

@cloudflare-workers-and-pages

cloudflare-workers-and-pages Bot commented Aug 16, 2026

Copy link
Copy Markdown

Deploying with  Cloudflare Workers  Cloudflare Workers

The latest updates on your project. Learn more about integrating Git with Workers.

Status Name Latest Commit Updated (UTC)
✅ Deployment successful!
View logs
emdash-playground 48981c7 Aug 16 2026, 02:24 PM

@emdashbot emdashbot Bot left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This PR addresses #2477 by replacing the hard-coded five-suggestion tag picker with a Kumo Combobox multi-select. The approach is sound: it keeps locale scoping via withLocale, performs client-side filtering with the existing diacritic-aware termMatches/termExactMatches, promotes exact matches to the top of the list, serializes rapid saves with a useMutation scope, and preserves creation input/API errors. The test additions are behavior-oriented and cover reachability, exact-match ordering, pointer/keyboard selection, rapid-save serialization, error recovery, and optimistic creation.

I read the diff, the full changed component/test files, and checked against AGENTS.md (localization, RTL-safe Tailwind, Kumo usage, changeset, comment discipline, query-count policy). The implementation looks correct and the changeset is user-facing. The only issues are two comments that restate what the surrounding code already plainly does, violating the AGENTS comment discipline.

Comment thread packages/admin/src/components/TaxonomySidebar.tsx Outdated
Comment thread packages/admin/src/components/TaxonomySidebar.tsx Outdated
@github-actions

Copy link
Copy Markdown
Contributor

Scope check

This PR changes 550 lines across 3 files. Large PRs are harder to review and more likely to be closed without review.

If this scope is intentional, no action needed. A maintainer will review it. If not, please consider splitting this into smaller PRs.

See CONTRIBUTING.md for contribution guidelines.

@github-actions github-actions Bot added the review/awaiting-author Reviewed; waiting on the author to respond label Aug 16, 2026
@pkg-pr-new

pkg-pr-new Bot commented Aug 16, 2026

Copy link
Copy Markdown

Open in StackBlitz

@emdash-cms/admin

npm i https://pkg.pr.new/@emdash-cms/admin@2495

@emdash-cms/auth

npm i https://pkg.pr.new/@emdash-cms/auth@2495

@emdash-cms/auth-atproto

npm i https://pkg.pr.new/@emdash-cms/auth-atproto@2495

@emdash-cms/blocks

npm i https://pkg.pr.new/@emdash-cms/blocks@2495

@emdash-cms/cloudflare

npm i https://pkg.pr.new/@emdash-cms/cloudflare@2495

@emdash-cms/contentful-to-portable-text

npm i https://pkg.pr.new/@emdash-cms/contentful-to-portable-text@2495

emdash

npm i https://pkg.pr.new/emdash@2495

create-emdash

npm i https://pkg.pr.new/create-emdash@2495

@emdash-cms/gutenberg-to-portable-text

npm i https://pkg.pr.new/@emdash-cms/gutenberg-to-portable-text@2495

@emdash-cms/plugin-cli

npm i https://pkg.pr.new/@emdash-cms/plugin-cli@2495

@emdash-cms/plugin-types

npm i https://pkg.pr.new/@emdash-cms/plugin-types@2495

@emdash-cms/registry-client

npm i https://pkg.pr.new/@emdash-cms/registry-client@2495

@emdash-cms/registry-lexicons

npm i https://pkg.pr.new/@emdash-cms/registry-lexicons@2495

@emdash-cms/registry-verification

npm i https://pkg.pr.new/@emdash-cms/registry-verification@2495

@emdash-cms/sandbox-workerd

npm i https://pkg.pr.new/@emdash-cms/sandbox-workerd@2495

@emdash-cms/x402

npm i https://pkg.pr.new/@emdash-cms/x402@2495

@emdash-cms/plugin-ai-moderation

npm i https://pkg.pr.new/@emdash-cms/plugin-ai-moderation@2495

@emdash-cms/plugin-atproto

npm i https://pkg.pr.new/@emdash-cms/plugin-atproto@2495

@emdash-cms/plugin-audit-log

npm i https://pkg.pr.new/@emdash-cms/plugin-audit-log@2495

@emdash-cms/plugin-color

npm i https://pkg.pr.new/@emdash-cms/plugin-color@2495

@emdash-cms/plugin-embeds

npm i https://pkg.pr.new/@emdash-cms/plugin-embeds@2495

@emdash-cms/plugin-field-kit

npm i https://pkg.pr.new/@emdash-cms/plugin-field-kit@2495

@emdash-cms/plugin-forms

npm i https://pkg.pr.new/@emdash-cms/plugin-forms@2495

@emdash-cms/plugin-webhook-notifier

npm i https://pkg.pr.new/@emdash-cms/plugin-webhook-notifier@2495

commit: 48981c7

@khoinguyenpham04
khoinguyenpham04 force-pushed the fix/2477-unified-tag-picker branch from ee5f416 to 48981c7 Compare August 16, 2026 14:20
@github-actions github-actions Bot added the review/needs-rereview Author pushed changes since the last review label Aug 16, 2026
@ascorbic

Copy link
Copy Markdown
Collaborator

I'm guessing you didn't notice #2491!

@github-actions github-actions Bot removed the review/awaiting-author Reviewed; waiting on the author to respond label Aug 16, 2026
@khoinguyenpham04

Copy link
Copy Markdown
Collaborator Author

I'm guessing you didn't notice #2491!

I did this yesterday! But didn't push until today LOL

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

area/admin needs-rebase review/needs-rereview Author pushed changes since the last review size/XL

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Tag autocomplete hides matches beyond five results and has no keyboard or scroll navigation

2 participants